# encoding: utf-8


class Parser(object):

    def __init__(self, lista_comandos_validos):
        self._comando = ""  # aca se va a guardar el comando
        self._argumentos = []  # aca se van a guardar los argumentos
                               #(Notar que no se chequearon los tipos,
                               # esto se hará en el que lo tenga que ejecutar)
        self._lista_comandos_validos = lista_comandos_validos

    def get_comando(self):
        return (self._comando)

    def get_argumentos(self):
        return (self._argumentos)

    def _separar_comando_y_argumentos(self, comando_a_chequear):
        lista = comando_a_chequear.split(None, 1)
        if (len(lista) > 1):
            return lista
        else:
            return lista[0], None

    def chequear(self, comando_a_chequear):
        es_valido = False  # inicializo a False
        (comm, list_arg) = self._separar_comando_y_argumentos(comando_a_chequear)
        for i in range(len(self._lista_comandos_validos)):
            if (comm in self._lista_comandos_validos[i]):
                #todo Ok, el comando es valido, OJO no chequeo por arg, eso lo hace cada metodo
                es_valido = True
                self._comando, self._argumentos = comm, list_arg
                break
        return es_valido
